package com.tedu.api.io;

import java.io.Serializable;
import java.util.Arrays;

/**
 * Persion.java 类
 *
 * IO---高级流---针对传对象、Person.java对象具备如下功能：
 * 1.实现序列化接口   Serializable序列化接口--提供：功能
 *  序列化接口：Persion.java--JDK中虚拟机---转成Persion.class[字节码文件]
 *           对象转换成二进制---序列化接口实现
 * 对象输入流---对象输出流
 * InvalidClassException 类版本号转换异常
 * 原因：序列化或者反序列化操作
 *
 *
 * 练习一：对象输入流/输出流-实现为标准流
 *    二：persion 对象 实现Serializable删掉，测试对象输出流是否正常写出
 */
public class Persion {
    //版本号：决定反序列化是否成功【字节文件转换为对象】
    /**
     * 版本号：决定反序列化是否成功【字节文件转换为对象】 唯一标识
     *       类决定Serializable接口，具备序列化功能，类自动生成版本号
     *       建议：重写版本号
     *       每次增加代码或者减少代码，统一版本号，读入【反序列化成功】
     *javaBean:java豆子---按照规范编写实体类
     */
    private static final long serialVersionUID=2L;

    private String name;     //私有属性
    private String[] say;
    public int age;
    //空参构造器
    public Persion() {
    }
    //有参构造器
    public Persion(String name, String[] say) {
        this.name = name;
        this.say = say;
    }
    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }

    public String[] getSay() {
        return say;
    }

    public void setSay(String[] say) {
        this.say = say;
    }


      //重写：Object toString()  打印对象地址值    对象名@ERD2
      //重写目的：不想看地址值，看对象属性值
    @Override
    public String toString() {
        return "Persion{" + "name='" + name + '\'' + ", say=" + Arrays.toString(say) + '}';
    }


}
